Webmention

From IndieWeb
(Redirected from webmentions)

Webmention icon
W3C logo

Webmention is an open web standard (W3C Recommendation) for conversations and interactions across the web, a powerful building block used for a growing distributed network of peer-to-peer comments, likes, reposts, and other responses across the web.

Steps to a W3C recommendation: 1. Working Draft, 2. Candidate Recommendation, 3. Proposed Recommendation, 4. W3C Recommendation

Why

Enables cross-site conversations. When you link to a website, you can send it a Webmention to notify it. If it supports Webmentions, then that website may display your post as a comment, like, or other response, and presto, you’re having a conversation from one site to another!

”… an @ mention that works across websites; so that you don't feel immovable from Twitter or Fb.” Rony Ngala

How to implement or display

When you publish a post with links to other sites, your site can send a webmention notification to sites that accept them to inform them that they were linked to.

A webmention receiver provides discovery of their webmention endpoint so it can be found by others who link to the page. When a receiver’s endpoint receives a webmention notification, it looks up the sender’s post and may display it as a response.

Mentions mainly require a link to the recipient on the page, but they can be enhanced into more meaningful responses (such as comments, reposts, or likes) by adding microformats to the sender’s post.


Want to implement Webmention or learn more about its technical details? See:

IndieWeb Examples

Indie Web sites that have implemented webmentions and display them nicely!

Aaron Parecki with p3k

  • Aaron Parecki using p3k on aaronparecki.com as of 2013-05-26. Details:
    • Posts have an input form for pasting in your comment URL to conveniently send a manual webmention (as of 2013-10-12)

Ben Werdmuller with Known

Barnaby Walters with Taproot

Jeremy Keith with adactio.com

Barry Frost with barryfrost.com


Bear with bear.im

  • Bear on bear.im as of 2013-12-01.
    • All posts accept webmentions and send webmentions for new and updated posts
    • Full Discovery for link headers, links in html head and body
    • webmention handling done by the Python library ronkyuu

Kartik Prabhu with kartikprabhu.com

Jeena with jeena.net

Pelle Wessman with webmention.herokuapp.com

Christian Kruse with wwwtech.de

  • Christian Kruse using a home grown Phoenix app on https://wwwtech.de as of somewhen in 1998. Details:
    • All homepage, blog posts and notes, photos, comments accept webmentions
    • Discovery with rel="webmention" in HTTP header and HTML document
    • Sends webmentions on create and update, no salmentions yet

Andy Sylvester with WordPress plugin

gRegor Morrill with ProcessWire plugin

  • gRegor Morrill sending and receiving webmentions on gRegorLove.com as of 2014-02-04.
    • Using a custom plugin I developed for ProcessWire; previously a plugin for Nucleus CMS
    • All articles can receive webmentions
    • Webmention endpoint is broadcast via Link: HTTP header and <link> element
    • Incoming webmentions validate the target is a valid URL on gregorlove.com and the post ID in the URL is valid.
    • Webmentions are parsed and further validated asynchronously. Replies/mentions are displayed interleaved with "local" blog comments..
    • More implementation notes

David Shanske with WordPress plugin

Ben Roberts with ben.thatmustbe.me

  • Ben Roberts sending and receiving webmentions on ben.thatmustbe.me as of 2014-04-24
    • Parsing replies, mentions, and likes. Rsvps are handled as just mentions currently.
    • Discovery with both: rel="webmention" and rel="http://webmention.org/" links in head, and HTTP Link: rel="http://webmention.org/ header
    • Currently uses vouch and a whitelist while all others are sent to moderation.
    • Processing happens asynchronously by cron job.
    • Submissions return a link for queue record that returns a status as a Webmention-Status header as well as a minor note in the body.
    • Attempting to keep implementation notes as a modified spec at webmetion0.2-b1
    • Sending is done automatically when post is made.

Chris Aldrich with WordPress plugin

Khürt Williams with WordPress plugin

Will Norris with webmention.herokuapp.com

Joel Dueck with thelocalyarn.com

  • Joel Dueck receiving webmentions on thelocalyarn.com as of 2014-09-23.
    • All posts accept webmentions as well as traditional comments.
    • Webmentions (if valid) are logged to a text file and sent to Joel via email. Those that pass moderation are manually added to the target post as a comment (which on this site means it is included in the blog and sent to email and RSS subscribers as well as being appended to the target post).
    • Endpoint is a modified version of Jeremy Keith's webmention.php.
    • Webmentions sent manully. More to implement. To-do list is long. Site is running Textpattern CMS, so a complete webmentions plugin is both feasible and ideal.

Johnny Oskarsson with joskar.se

  • Johnny Oskarsson receiving webmentions on joskar.se as of 2014-10-23.
    • Webmention endpoint is broadcast via Link: HTTP header only.
    • Pages marked up with h-entry in-reply-to show up as comments, others won't show up at all. (but they will be logged)
    • Webmentions are sent manually for now.

Stuart Langridge with Pelican additions

Alex Kearney with IndieAnndroid

Tantek with Falcon

Tantek Çelik using Falcon on tantek.com sends webmentions automatically as of 2015-06-11 specifically for the following kinds of links:

Jason Garber with FrancisCMS

  • Jason Garber using FrancisCMS on sixtwothree.org as of 2016-01-27. Details:
    • All posts, links, and photos automatically accept webmentions. Replies, shares, and likes are reverse syndicated via Bridgy.
    • Post, link, and photo permalink pages have an input form for pasting in your comment URL to manually send a web mention.
    • Discovery with: Link: <https://sixtwothree.org/webmentions>; rel="webmention" HTTP header and <link rel="webmention" href="https://sixtwothree.org/webmentions"> in the HTML's <head>.
    • Webmention source URLs are parsed using the microformats2 Ruby gem.

Calum Ryan with calumryan.com

  • Calum Ryan on calumryan.com
    • Since 2016-08-28 support for receiving webmentions using jekyll-webmention_io initially on purely Jekyll generated pages but now also on notes generated from self-built CMS in PHP
    • Since 2016-11-06 built in function for manual sending of webmentions via self-built CMS in PHP using mention-client-php

Sebastiaan Andeweg on seblog.nl

Daniel Goldsmith with Hugo

Amit Gawande with amitgawande.com

fluffy with beesbuzz.biz

Jamie Tanna with Hugo

Wouter Groeneveld with Hugo

Alberto Mardegan with Bussator

Alberto Mardegan with Bussator, Nikola and Isso on www.mardy.it

  • Template:Www.mardy.it has been receiving webmentions on mardy.it since October 2019
  • It's a static website generated by Nikola, running on a cheap shared hosting
  • Comments are handled by Isso
  • The receiver is a Bussator instance which transforms webmentions into comments, which are then forwarded into Isso

Jan-Lukas Else with Hugo and now GoBlog

Danny Steenman with GatsbyJS

Ferdinand Mütsch with Hexo

  • Ferdinand has been receiving webmentions on muetsch.io since April 2020, using webmention.io and Telegram MiddlemanBot to receive notifications as instant messages.
  • Since then, Webmentions are also sent to all referenced articles in his blog posts when a new publication is made

Rasul Kireev with Gridsome

  • Rasul Kireev using Gridsome, webmention.io and brid.gy on rasulkireev.com as of 2020-08-17. Details:
    • Whenever someone mentions a blog post anywhere on the internet, a webmention is posted in the comments section below the post.
    • Thanks to brid.gy, whenever someone likes, retweets, replies to the tweet with my link I get a webmention, which also ends up on the site.

Max Dietrich with Next.js

  • Max Dietrich has been receiving webmentions on mxd.codes since February 2021, using webmention.io and brid.gy.
  • Webmentions are filtered by typ, e.g. "repost-of", "like-of", etc. and shown at the bottom of articles and notes

Mrs. D with Hugo

capjamesg on jamesg.blog

  • capjamesg displays webmentions on his Jekyll static blog. Webmentions are rendered using some custom JavaScript code that queries his webmention endpoint. James also hosts his own webmention endpoint. Visitors can send a webmention from the endpoint by using the "send webmention" form that appears at the bottom of all content pages (i.e. blog posts, coffee posts, likes).

4X_Pro on 4xpro.ru

  • 4X_Pro added basic support for webmentions in his Intellect Board forum engine since April 2022. Webmentions are displayed as simple comments from special WebMention user.

Robijntje on geheimesite.nl

ᜌᜓᜃᜒ (Yuki) with Hugo

Owen Young with Zola and Github Actions

Mike Bifulco with Next.js

EINDEX with Astro and CI Workflows

Luis Quintanilla with WebmentionFs

Publishing Software

Some open-source publishing software with core support for webmentions and is ready for typical users:

Known

  • Known personal publishing software sends webmentions and accepts webmention comments (including webmention updates) and likes

Perch

  • Perch began beta testing webmentions on 2017-07-16
  • Perch adds support for sorting webmentions on 2017-07-26. See facepile

Plugins exist for some open source publishing software and CMSs:

WordPress

Drupal

Craft

Nucleus CMS

Kirby

Process Wire

Elgg

Django

Grav

  • Grav CMS used to send and receive webmentions through the webmenton plugin. The plugin was abandoned by the owner on 9 June 2022 and is available to be taken over. There is one report that it does not work with Grav > 1.6.2

b2evolution

Others

Some other open source publishing software supports webmentions:

  • FrancisCMS personal publishing software similarly sends and receives
  • WWWTech personal publishing software similarly sends and receives
  • phorkie sends and accepts webmentions to notify remote instances about forks
  • gRSShopper added Webmention support on 2018-09-27
  • Pelican has a plugin to send webmentions
  • Ghost uses webmentions for its recommendations feature

Some additional publishing software, portions of which are open source, supports webmentions:

  • p3k sends webmentions for all posts and accepts webmention comments on events, notes, replies, RSVPs
  • Taproot
  • Falcon sends webmentions for all links in posts (except maybe articles - untested)

Closed Source Publishing Software

While not open sourced, there are several publishing/blogging platforms with core support for webmentions.

Micro.blog

  • Micro.blog can send and receive Webmentions. When you use Micro.blog to reply to a post in the timeline, Micro.blog will send a Webmention for that post if it is hosted outside of Micro.blog. When receiving a Webmention, Micro.blog will attempt to map the incoming reply to an existing Micro.blog user, otherwise it will create a special record for the external site based on its domain name.

i.haza.website

Pine.blog

Typlog

Aggregator Software

Prismo

  • Prismo is link aggregator software that began supporting Webmention in version 0.6.0rc4 [3]
  • Prismo currently only sends webmentions for posted links, not links within comments.

Services

Services that automatically send and/or receive webmentions for links in posts.

Lobsters

Lobsters (lobste.rs) sends webmentions for any links aggregated there.

Web We Want

Requests on the Web We Want site are setup to receive webmentions to upvote, e.g. via like and bookmark responses as described in https://webwewant.fyi/voting/

Publisher Services

Services for publishers to handle receiving & sending webmentions for their sites or using webmentions for additional services like POSSE. Alphabetical:

Bridgy

Main article: Bridgy

brid.gy is a service that sends webmentions for comments/replies, likes, and reposts on Twitter, flickr, GitHub, Mastodon, and Instagram posts. It uses original post discovery to find target links for the webmentions. GitHub repo here.

Bridgy Publish also supports webmention as a mechanism to trigger POSSEing to Twitter, flickr, GitHub, Mastodon, and Instagram.

Bussator

Bussator is a webmention receiver which publishes webmentions as comments. Its modular design supports publishing to multiple commenting systems, but currently only a plugin for Isso has been implemented. Bussator is a WSGI application, which can also be installed as a FastCGI service (that is, one doesn't need to have a webserver running all the time).

capjamesg Webmention Receiver

capjamesg has open sourced his webmention receiver. While still in active development, the project will let you host your own webmention sender and receiver. You can find the project on GitHub.

Go-Jamming

go-jamming is a single binary native Go microserver that is capable of automatically sending and receiving mentions based on your RSS feed. It takes privacy and security into account and includes rate limiting, black/whitelisting to counter spam, ...

Jekmention

Jekmentions was a service that receives webmentions and stores them in a git repository.

Lazymention

Lazymention is an open source service you can run on a Node.js server to send Webmentions from static sites. Its general purpose is to add dynamic building-block features to otherwise static websites.

mention-tech

Main article: mention.tech

mention.tech is a service that can:

  • send webmentions on behalf of anyone using a web form on its home page
  • send a URL to the Internet Archive
  • mention all links on a page

stapibas

stapibas is a self-hosted service to send and receive webmentions for websites and blogs.

It can be used to send out webmentions and pingbacks for new posts on static sites.

Telegraph

Telegraph is an open source project and hosted service for sending webmentions and pingbacks. You can use it to send mentions to all links on a page, or send a webmention with specific source and target.

webmention.herokuapp.com

webmention.herokuapp.com is an open-source project and hosted service for receiving webmentions for registered sites and allowing those to be displayed through javascript.

webmention.io

Main article: webmention.io

webmention.io is an open-source project and hosted service for receiving webmentions and pingbacks on behalf of your indieweb site.

webmention.app

webmention.app is a platform agnostic service that will check a given URL or feed for any number of content entries, discover whether there are links that support webmentions, then send the webmention to the target. It is intended for an automated workflow and includes simple instructions on how to integrate into existing workflows (using tools like IFTTT or the command line or Netlify).

Tools

Tools you can use or install to send webmentions

Firefox Addon

Pushl

Pushl is a command-line tool for sending webmentions from pages discovered from arbitrary feeds (RSS, Atom, and h-feed).

Manual Webmentions

Users without other simple means to send a Webmention from one site to another can use the following tool interfaces to "manually" send webmentions on their behalf:

For those with more programming knowledge there is also a method for sending webmentions with cURL.

To manually receive webmentions you can have your web server log HTTP POST requests sent to your webmention endpoint URL to a file. Then you look at the log file with your text editor and respond manually, or script it, or whatever you like. An example of how to do this with nginx is at "A static, manual system for *receiving* webmentions (and pingback) with nginx" http://superkuh.com/blog/2020-01-10-1.html

Anonymous Webmentions (for commenting)

commentpara.de allows you to send webmentions anonymously, which allows readers to comment on an IndiWeb post without having their own presence.

Resources

Webmention Font Awesome Icon

At least 50 votes are required for 1st page and at least 100 votes to someone start considering icon development.

Libraries

Articles

Blog posts and articles about webmention (newest first)

Extensions

Webmention Development

Frequently Asked Questions

See Webmention-faq

History

The first draft of the webmention protocol was written by Sandeep Shetty on 2012-10-22.

Previous Examples

Sandeep Shetty

Sandeep Shetty used Converspace. The domain now redirects, however based on git commit history and archived links:

  • 2013-06-04: added ability to send webmentions [4]
  • 2013-06-09: added ability to receive webmentions [5]
  • 2013-06-11: received a webmention from Aaron Parecki and displayed it as a comment. [6] [7]
    • It appears this is the first federated comment thread using webmention and h-entry

Tom Morris

  • Tom Morris using Ferocity on tommorris.org as of 2013-??-??. Details:
    • All(?) posts send webmentions (as of 2013-??-??) upon posting (asynchronously with posting UI, no results reported).
  • Confirmed page no longer has webmention endpoint on 2021-12-27

Christian Weiske with stapibas

  • Christian Weiske receiving webmentions on cweiske.de as of 2013-10-22. Details:
    • All posts accept webmentions using stapibas
    • Discovery only with HTTP Link: <http://cweiske.de/stapibas/xmlrpc.php>; rel="webmention"
    • Approach for sending webmentions (with fallback sending of pingbacks)
      • https://github.com/pear2/Services_Linkback/blob/master/src/PEAR2/Services/Linkback/Client.php#L236
      • check self Atom feed, if there are updates then proceed with discovery/sending for each update, for each link in the update: do a HEAD request first, do discovery for webmention endpoint, if none found, do discovery for pingback endpoint, if none found and the resource is 'application/xhtml+xml' or 'text/html', do a GET request, do discovery for webmention endpoint, if none found, do discovery for pingback endpoint. send webmention if an endpoint was found, otherwise send pingback if an endpoint was found.
  • Not retrievable on 2021-12-27

Testimonials

(this section is a stub, please feel free to expand it)

See Also

Glenn Jones with node webmentions module

  • Glenn Jones using node.js module github.com/glennjones/webmentions on glennjones.net as of 2014-02-19.. Details:
    • All notes accept webmentions
    • Discovery only with: rel="webmention" link in head
    • The notes editor has an input for the in-reply-to URL
    • The webmentions module allows pinging of webmention between any sites
    • Yet to implement: full authorship parsing, updates, deletes.
  • 404 as of 2021-12-27

Dan Lyke with www.flutterby.com

  • Dan Lyke receiving webmentions on Flutterby.com blog entries as of 2014-10-10.
    • Webmention endpoint is broadcast via <link> element and <indie-action> element.
    • Currently only displays links on title text back to source URLs
  • No webmention header as retrieved 2021-12-27

Jay Robinson with aruna

  • j4y_funabashi on j4y.co as of 2016-06-13.
    • All new posts send webmentions
    • passes all 21 Discovery tests on webmention.rocks
    • receiving sort of works but I don't display anything yet and there are bugs that sometimes spam brid.gy
  • Site not live, returns nginx config page as of 2021-12-27

Ru Singh with Eleventy on rusingh.com